//
//  VIZModule.h
//  VIZModuleManager
//  好大夫模块管理实体类
//  Created by 位立志 on 2018/2/8.
//

#import <Foundation/Foundation.h>

@import UIKit;
@import UserNotifications;

/**
 模块优先级
 
 - VIZModulePriorityVeryLow: 极底
 - VIZModulePriorityLow: 低
 - VIZModulePriorityMedium: 中
 - VIZModulePriorityHigh: 高
 - VIZModulePriorityVeryHigh: 极高
 */
typedef NS_ENUM(NSInteger, VIZModulePriority) {
    VIZModulePriorityVeryLow = 0,
    VIZModulePriorityLow = 1,
    VIZModulePriorityMedium = 2,
    VIZModulePriorityHigh = 3,
    VIZModulePriorityVeryHigh = 4,
};

@protocol VIZModuleDelegate <UIApplicationDelegate, UNUserNotificationCenterDelegate>

@end

@interface VIZModule : NSObject <VIZModuleDelegate>


+ (instancetype)module;


/**
 注册模块
 */
+ (void)registerModule;

/**
 模块初始化优先级
 
 主工程模块的集成时,
 会依据priority进行优先级执行 UIApplicationDelegate 代理方法
 子类需要重写该方法达到优先级的目的，默认是 VIZModulePriorityMedium
 @return 优先级
 */

+ (VIZModulePriority)priority;


@end
